////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Visual Treatment
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////
//-- 🎛 Master Toggles / Pipeline --//
//////////////////////////////////////////
float ui_UsePostEffects < string UIName = "Enable Post Effects"; string UIGroup = "Master Pipeline"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; int UIGroupOrder = 0; > = 1.0;
float ui_UseLUT < string UIName = "Enable LUT Color Grading"; string UIGroup = "Master Pipeline"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.0;
float ui_UseAutoExposure < string UIName = "Enable Auto Exposure"; string UIGroup = "Master Pipeline"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 1.0;
float ui_ExposureMin < string UIName = "Exposure Min"; string UIGroup = "Auto Exposure"; string UIWidget = "Slider"; float UIMin = 0.01; float UIMax = 2.0; int UIGroupOrder = 4; string UICondition = "ui_UseAutoExposure"; > = 0.25;
float ui_ExposureMax < string UIName = "Exposure Max"; string UIGroup = "Auto Exposure"; string UIWidget = "Slider"; float UIMin = 1.0; float UIMax = 16.0; string UICondition = "ui_UseAutoExposure"; > = 6.0;

//////////////////////////////////////////
//-- 🔧 System / Global Settings --//
//////////////////////////////////////////
float ui_MotionBlurRadialPull < string UIName = "Radial Pull (360 Style)"; string UIGroup = "System"; string UIWidget = "Slider"; int UIGroupOrder = 1; float UIMin = 0.5; float UIMax = 1.0; > = 0.9;

//////////////////////////////////////////
//-- 🌞 Basic Image Adjustments --//
//////////////////////////////////////////
float ui_Brightness < string UIName = "Global Brightness"; string UIGroup = "Basic Adjustments"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 3.0; int UIGroupOrder = 2; > = 1.00;
float ui_Contrast < string UIName = "Global Contrast"; string UIGroup = "Basic Adjustments"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 3.0; > = 1.05;

//////////////////////////////////////////
//-- 🎨 Tonemapping --//
//////////////////////////////////////////
float ui_TonemapSelector < 
    string UIName = "Tonemap Operator"; 
    string UIGroup = "Tonemapping"; 
    int UIGroupOrder = 3;
    string UIWidget = "Combo"; 
    string UIEnum = "Standard/None,Reinhard,ACES 2,ACES Legacy,Uncharted 2,Unreal Engine,Lottes,Gran Turismo,Narkowicz,AgX,Filmic ALU,NFS Heat Style,Reinhard 2,Uchimura";
> = 2.0;

float ui_ExposureBias < string UIName = "Exposure Bias"; string UIGroup = "Tonemapping"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 5.0; > = 0.65;

//////////////////////////////////////////
//-- 🌈 Color Grading & Look --//
//////////////////////////////////////////
float ui_UseWhitebalance < string UIName = "Adaptive Whitebalance"; string UIGroup = "Color Grading"; string UIWidget = "Slider"; int UIGroupOrder = 5; > = 1.0;
float ui_ColorTemp < string UIName = "Color Temperature"; string UIGroup = "Color Grading"; string UIWidget = "Slider"; float UIMin = -5.0; float UIMax = 5.0; > = 1.10;

// Preset Selector
float ui_PresetSelector < 
    string UIName = "Preset Selection"; 
    string UIGroup = "Color Grading"; 
    int UIGroupOrder = 5;
    string UIWidget = "Combo"; 
    string UIEnum = "User Custom,Neutral+,Cinematic Teal+Orange,Cold Night,Golden Hour,Bleach Bypass,NFS MostWanted,NFS Carbon,Overcast,High Contrast,Vintage Film,Neon Night,Cross Process,Desert Dust,Teal Shadows,Washed Out,Deep Forest,Infrared,Broadcast TV,Monochrome Tint";
> = 0.0;

// Custom Channels
float4 ui_RedChannel < string UIName = "Channel Mixer: Red"; string UIGroup = "Color Grading (User)"; string UIWidget = "Color"; int UIGroupOrder = 6; > = float4(1.0, 0.0, 0.0, 1.0);
float4 ui_GreenChannel < string UIName = "Channel Mixer: Green"; string UIGroup = "Color Grading (User)"; string UIWidget = "Color"; > = float4(0.0, 1.0, 0.0, 1.0);
float4 ui_BlueChannel < string UIName = "Channel Mixer: Blue"; string UIGroup = "Color Grading (User)"; string UIWidget = "Color"; > = float4(0.0, 0.0, 1.0, 1.0);
float ui_Luma < string UIName = "Luminance"; string UIGroup = "Color Grading (User)"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 2.0; > = 1.0;
float ui_Chroma < string UIName = "Saturation (Chroma)"; string UIGroup = "Color Grading (User)"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 3.0; > = 1.0;
float ui_CGMode < string UIName = "Grading Mode"; string UIGroup = "Color Grading (User)"; string UIWidget = "Combo"; string UIEnum = "Simple,Advanced"; > = 0.0;

// Color Balance: RGB offset per tonal range. Default (0,0,0) = no change.
float4 ui_CBShadows    < string UIName = "Shadows";    string UIGroup = "Color Balance"; string UIWidget = "Color"; int UIGroupOrder = 7; string UICondition = "ui_CGMode"; > = float4(0.0, 0.0, 0.0, 1.0);
float4 ui_CBMidtones   < string UIName = "Midtones";   string UIGroup = "Color Balance"; string UIWidget = "Color"; string UICondition = "ui_CGMode"; > = float4(0.0, 0.0, 0.0, 1.0);
float4 ui_CBHighlights < string UIName = "Highlights"; string UIGroup = "Color Balance"; string UIWidget = "Color"; string UICondition = "ui_CGMode"; > = float4(0.0, 0.0, 0.0, 1.0);

// Lift/Gamma/Gain. Lift=additive shadow. Gamma=midtone power. Gain=highlight multiplier.
// Lift/Gamma/Gain encoded as Color pickers remapped in shader:
//   Lift:  picker 0.5 = no shift. <0.5 = push blacks down, >0.5 = lift blacks up.
//   Gamma: picker 0.5 = gamma 1.0. <0.5 = darken mids, >0.5 = brighten mids.
//   Gain:  picker 0.5 = gain 1.0.  <0.5 = reduce highlights, >0.5 = boost highlights.
float4 ui_LGGLift  < string UIName = "Lift  (Shadows)";    string UIGroup = "Lift / Gamma / Gain"; string UIWidget = "Color"; int UIGroupOrder = 8; string UICondition = "ui_CGMode"; > = float4(0.5, 0.5, 0.5, 1.0);
float4 ui_LGGGamma < string UIName = "Gamma (Midtones)";   string UIGroup = "Lift / Gamma / Gain"; string UIWidget = "Color"; string UICondition = "ui_CGMode"; > = float4(0.5, 0.5, 0.5, 1.0);
float4 ui_LGGGain  < string UIName = "Gain  (Highlights)"; string UIGroup = "Lift / Gamma / Gain"; string UIWidget = "Color"; string UICondition = "ui_CGMode"; > = float4(0.5, 0.5, 0.5, 1.0);

// RGB Curves: 4 control points per channel. Default = identity.
float ui_CurveMasterP0 < string UIName = "Master: Shadows";    string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; int UIGroupOrder = 9; string UICondition = "ui_CGMode"; > = 0.0;
float ui_CurveMasterP1 < string UIName = "Master: Darks";      string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.333;
float ui_CurveMasterP2 < string UIName = "Master: Lights";     string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.667;
float ui_CurveMasterP3 < string UIName = "Master: Highlights"; string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 1.0;
float ui_CurveRP0 < string UIName = "Red: Shadows";      string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_CurveRP1 < string UIName = "Red: Darks";        string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.333;
float ui_CurveRP2 < string UIName = "Red: Lights";       string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.667;
float ui_CurveRP3 < string UIName = "Red: Highlights";   string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 1.0;
float ui_CurveGP0 < string UIName = "Green: Shadows";    string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_CurveGP1 < string UIName = "Green: Darks";      string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.333;
float ui_CurveGP2 < string UIName = "Green: Lights";     string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.667;
float ui_CurveGP3 < string UIName = "Green: Highlights"; string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 1.0;
float ui_CurveBP0 < string UIName = "Blue: Shadows";     string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_CurveBP1 < string UIName = "Blue: Darks";       string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.333;
float ui_CurveBP2 < string UIName = "Blue: Lights";      string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.667;
float ui_CurveBP3 < string UIName = "Blue: Highlights";  string UIGroup = "RGB Curves"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 1.0;

// HSL per Segment: Sat -1(desaturate)..+1(saturate), Lum -0.5..+0.5
float ui_HSLRedSat     < string UIName = "Red Saturation";     string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -1.0; float UIMax = 1.0; int UIGroupOrder = 10; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLRedLum     < string UIName = "Red Luminance";      string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -0.5; float UIMax = 0.5; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLYellowSat  < string UIName = "Yellow Saturation";  string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -1.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLYellowLum  < string UIName = "Yellow Luminance";   string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -0.5; float UIMax = 0.5; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLGreenSat   < string UIName = "Green Saturation";   string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -1.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLGreenLum   < string UIName = "Green Luminance";    string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -0.5; float UIMax = 0.5; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLCyanSat    < string UIName = "Cyan Saturation";    string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -1.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLCyanLum    < string UIName = "Cyan Luminance";     string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -0.5; float UIMax = 0.5; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLBlueSat    < string UIName = "Blue Saturation";    string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -1.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLBlueLum    < string UIName = "Blue Luminance";     string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -0.5; float UIMax = 0.5; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLMagentaSat < string UIName = "Magenta Saturation"; string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -1.0; float UIMax = 1.0; string UICondition = "ui_CGMode"; > = 0.0;
float ui_HSLMagentaLum < string UIName = "Magenta Luminance";  string UIGroup = "HSL"; string UIWidget = "Slider"; float UIMin = -0.5; float UIMax = 0.5; string UICondition = "ui_CGMode"; > = 0.0;

//////////////////////////////////////////
//-- ✨ Glow & Bloom --//
//////////////////////////////////////////
float ui_BloomIntensity < string UIName = "Bloom Intensity (0 = OFF)"; string UIGroup = "Bloom & Glow"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 10.0; int UIGroupOrder = 11; > = 2.25;
float ui_BloomThreshold < string UIName = "Bloom Threshold"; string UIGroup = "Bloom & Glow"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.70;
float ui_BloomSoftKnee < string UIName = "Bloom Soft Knee"; string UIGroup = "Bloom & Glow"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.65;
float BLOOM_BLEND_MODE < string UIName = "Bloom Blend Mode (0=Screen, 1=Add)"; string UIGroup = "Bloom & Glow"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.5;


//////////////////////////////////////////
//-- 📸 Lens FX --//
//////////////////////////////////////////
float ui_LensDirtIntensity < string UIName = "Dirt Intensity (0 = OFF)"; string UIGroup = "Lens FX"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 5.0; int UIGroupOrder = 12; > = 1.0;
float ui_LensDirtBlendMode < string UIName = "Dirt Blend (0=Add, 1=Screen)"; string UIGroup = "Lens FX"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.5;
float ui_LensDirtEdgePower < string UIName = "Dirt Edge Emphasis (Center Clear)"; string UIGroup = "Lens FX"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 10.0; > = 2.0;
float ui_LensDirtChroma < string UIName = "Dirt Chromatic Ab."; string UIGroup = "Lens FX"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 0.05; > = 0.005;

//////////////////////////////////////////
//-- 🧠 Perception Tools --//
//////////////////////////////////////////
float ui_UseHDR < string UIName = "Enable FakeHDR"; string UIGroup = "Perception"; string UIWidget = "Slider"; int UIGroupOrder = 14; > = 1.0;
float ui_FakeHDRPower < string UIName = "FakeHDR Power"; string UIGroup = "Perception"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 2.0; > = 1.050;
float ui_FakeHDRRadius < string UIName = "FakeHDR Radius (px)"; string UIGroup = "Perception"; string UIWidget = "Slider"; float UIMin = 0.5; float UIMax = 8.0; > = 2.0;
float ui_useLegacyCurve < string UIName = "Legacy Curves (0 = OFF)"; string UIGroup = "Perception"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.00;
float ui_DesaturationAmount < string UIName = "Desaturation Amount (0 = OFF)"; string UIGroup = "Perception"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.00;
float ui_SharpenAmount < string UIName = "Sharpen Amount (0 = OFF)"; string UIGroup = "Perception"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 2.0; > = 0.25;

//////////////////////////////////////////
//-- ☀ God Rays --//
//////////////////////////////////////////
float ui_GodRayStrength < string UIName = "God Ray Strength (0 = OFF)"; string UIGroup = "God Rays"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 2.0; int UIGroupOrder = 16; > = 0.0;
float4 ui_GodRayTint < string UIName = "Ray Color / Tint"; string UIGroup = "God Rays"; string UIWidget = "Color"; > = float4(1.0, 0.9, 0.7, 1.0);
float ui_GodRayDensity < string UIName = "Ray Density (Length)"; string UIGroup = "God Rays"; string UIWidget = "Slider"; float UIMin = 0.1; float UIMax = 2.0; > = 0.8;
float ui_GodRayDecay < string UIName = "Ray Decay"; string UIGroup = "God Rays"; string UIWidget = "Slider"; float UIMin = 0.8; float UIMax = 1.0; > = 0.96;
float ui_GodRayWeight < string UIName = "Sample Weight"; string UIGroup = "God Rays"; string UIWidget = "Slider"; float UIMin = 0.01; float UIMax = 0.5; > = 0.15;

//////////////////////////////////////////
//-- 🖼️ Aesthetic FX --//
//////////////////////////////////////////
float ui_VignetteAmount < string UIName = "Vignette Amount (0 = OFF)"; string UIGroup = "Aesthetics"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; int UIGroupOrder = 13; > = 0.95;
float ui_VignetteRadius < string UIName = "Vignette Radius"; string UIGroup = "Aesthetics"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 2.0; > = 0.85;
float ui_VignetteCurve < string UIName = "Vignette Curve"; string UIGroup = "Aesthetics"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 3.0; > = 1.35;

float ui_AberrationMode < 
    string UIName = "Chromatic Aberration"; 
    string UIGroup = "Aesthetics"; 
    string UIWidget = "Combo"; 
    string UIEnum = "Off,NOS / Speed Only,Always On";
> = 1.0;
float ui_AberrationRadius < string UIName = "Aberration Radius (Always Mode)"; string UIGroup = "Aesthetics"; string UIWidget = "Slider"; float UIMin = 0.001; float UIMax = 0.05; > = 0.008;

float ui_FilmGrainStrength < string UIName = "Film Grain Strength (0 = OFF)"; string UIGroup = "Aesthetics"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; > = 0.065;
float ui_FilmGrainSize < string UIName = "Film Grain Size"; string UIGroup = "Aesthetics"; string UIWidget = "Slider"; float UIMin = 1.0; float UIMax = 20.0; > = 5.0;

//////////////////////////////////////////
//-- 🎮 Ingame-Scenario Effects --//
//////////////////////////////////////////
#define USE_CUSTOM_CLIFF_EFFECT 1                           // 0 = OFF, 1 = ON; Toggles Custom Cliff Fall Effect
#define CLIFF_COLOR float3(0.8, 0.8, 0.8)                   // Sets Color in (r, g, b)
#define CLIFF_BLEND 1.00                                    // Sets Blend Amount (1 = max)

#define USE_CUSTOM_COP_ENGANGEMENT 0                        // 0 = OFF, 1 = ON; Toggles Custom Cop Engangement
#define INTRO_BLEND_COLOR  float3(0.4, 0.0, 0.0)            // Sets Color in (r, g, b)
#define INTRO_BLEND_AMOUNT 0.15                             // Sets Blend Amount (1 = max)

float ui_UseCustomSpeedbreaker < string UIName = "Custom Speedbreaker FX"; string UIGroup = "Ingame Effects"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; int UIGroupOrder = 15; > = 1.0;
float4 ui_SpeedbreakerColor < string UIName = "Speedbreaker Color"; string UIGroup = "Ingame Effects"; string UIWidget = "Color"; string UICondition = "ui_UseCustomSpeedbreaker"; > = float4(0.8, 0.8, 0.8, 1.0);
float ui_SpeedbreakerBlend < string UIName = "Speedbreaker Blend"; string UIGroup = "Ingame Effects"; string UIWidget = "Slider"; float UIMin = 0.0; float UIMax = 1.0; string UICondition = "ui_UseCustomSpeedbreaker"; > = 1.00;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 🧱 Internal Definitions (Dont Edit!!)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "MODULES/global.h"
#include "MODULES/tonemap_variants.fx"
#include "MODULES/colorgrading_presets.fx"
#include "MODULES/visualtreatment.h"

#define DO_DOF(value)				value
#define DO_COLOUR_FADE(value)		value

technique visualtreatment
{
	pass p0
	{
        VertexShader = compile vs_3_0 vertex_shader_passthru();
        PixelShader = compile ps_3_0 PS_VisualTreatment(DO_DOF(false), DO_COLOUR_FADE(false));
    }
}

technique visualtreatment_enchanced
{
	pass p0
	{
        VertexShader = compile vs_3_0 vertex_shader_passthru();
        PixelShader = compile ps_3_0 PS_VisualTreatment(DO_DOF(true), DO_COLOUR_FADE(true));
    }
}

technique motionblur
{
    pass p0
    {
        VertexShader = compile vs_3_0 VS_MotionBlur();
        PixelShader = compile ps_3_0 PS_MotionBlur();
    }
}

technique composite_blur
{
    pass p0
    {
        VertexShader = compile vs_3_0 VS_CompositeBlur();
        PixelShader = compile ps_3_0 PS_CompositeBlur();
    }
}

technique uvesovercliff
{
    pass p0
    {
        VertexShader = compile vs_3_0 vertex_shader_passthru();
        PixelShader = compile ps_3_0 PS_UvesOverCliff(DO_COLOUR_FADE(false));
    }
}

technique uvesovercliffdarken
{
    pass p0
    {
        VertexShader = compile vs_3_0 vertex_shader_passthru();
        PixelShader = compile ps_3_0 PS_UvesOverCliff(DO_COLOUR_FADE(true));
    }
}

technique screen_passthru
{
	pass p0
	{
        VertexShader = compile vs_3_0 vertex_shader_passthru();
		PixelShader	 = compile ps_3_0 PS_PassThru();
	}
}